home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.3 Development Libraries
/
SGI IRIX 6.3 Development Libraries.iso
/
dist
/
dist6.3
/
ViewKit_dev.idb
/
usr
/
include
/
Vk
/
VkForkIO.h.z
/
VkForkIO.h
Wrap
C/C++ Source or Header
|
1996-09-20
|
2KB
|
67 lines
////////////////////////////////////////////////////////////////////////////////
/////// Copyright 1992, Silicon Graphics, Inc. All Rights Reserved. ///////
// //
// This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.; //
// the contents of this file may not be disclosed to third parties, copied //
// or duplicated in any form, in whole or in part, without the prior written //
// permission of Silicon Graphics, Inc. //
// //
// RESTRICTED RIGHTS LEGEND: //
// Use,duplication or disclosure by the Government is subject to restrictions //
// as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data //
// and Computer Software clause at DFARS 252.227-7013, and/or in similar or //
// successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished - //
// rights reserved under the Copyright Laws of the United States. //
// //
////////////////////////////////////////////////////////////////////////////////
#ifndef _VK_FORK_IO_
#define _VK_FORK_IO_
#include <Vk/VkTextIO.h>
#include <Vk/VkProgram.h>
#include <Vk/VkSubProcess.h>
#include <Vk/VkInput.h>
enum VkForkIOReason { FIO_exited, FIO_destroyed, FIO_ctrlc, FIO_ctrld };
class VkForkIO : public VkTextIO {
public:
VkForkIO(const char *name, Widget parent, const char *prompt = NULL);
~VkForkIO();
void execCommand(char *cmd);
Boolean running() { return _running; }
void inputString(char *str);
static const char *const exitCallback;
static const char *const inputCallback;
protected:
void cmdOutput(VkCallbackObject*, void *, void *);
void cmdExit(VkCallbackObject*, void *, void *);
void killProcess();
int readAndOutput(VkInput *input);
virtual void doCtrlC();
virtual void doCtrlD();
virtual void doNewLine();
Boolean _running;
VkInput stdoutCB;
VkInput stderrCB;
VkSubProcess process;
};
#endif